stage.set_background("moon")
sprite = codesters.Sprite("hedgehog", 0, -210)
score = 0
#my_display = codesters.Display(my_var, x, y)
score_display = codesters.Display(score, -210, -210)
time = 60
#my_display = codesters.Display(my_var, x, y)
time_display = codesters.Display(time, 210, -210)
def left_key():
rotation = sprite.get_rotation()
print(rotation)
sprite.set_rotation(rotation+3)
# add other actions...
stage.event_key("left", left_key)
def right_key():
rotation = sprite.get_rotation()
print(rotation)
sprite.set_rotation(rotation-3)
# add other actions...
stage.event_key("right", right_key)
def interval():
global time
time -=1
time_display.update(time)
if time % 2 == 0:
x = random.randint(-230,230)
y = random.randint(0,230)
stage.event_interval(interval, 1)
t = codesters.Teacher()
ifs = t.find_block('if')
star_params = t.get_parameters_for_function("Star")
star_text = t.find_text('Star')
func = t.find_text('interval()')
call = t.find_function('event_interval')
try:
tval1 = ifs[0][1].replace(' ','')
tval1b = ifs[0][0]
tval1_indent = t.get_indent_at_line(tval1b)
except:
tval1 = "DNE"
tval1b = -1
tval1_indent = "DNE"
try:
tval2a = star_params[0][0]
except:
tval2a = "DNE"
try:
tval2b = star_params[0][1]
except:
tval2b = "DNE"
try:
tval2c = int(star_params[0][2])
except:
tval2c = -1
try:
tval2d = int(star_params[0][3])
except:
tval2d = -1
try:
tval2e = star_params[0][4]
except:
tval2e = "DNE"
try:
star_line = star_text[0][0]
tval2_indent = t.get_indent_at_line(star_line)
except:
star_line = -1
tval2_indent = -1
try:
tval2_name = star_text[0][1].split('=')[0].replace(" ", "")
tval3 = len(star_params[0])
except:
tval2_name = "DNE"
tval3 = "DNE"
try:
def_line = int(func[0][0])
def_line_indent = t.get_indent_at_line(def_line)
except:
def_line = -1
def_line_indent = -1
try:
call_line = int(call[0][0])
call_line_indent = t.get_indent_at_line(call_line)
except:
call_line = -1
call_line_indent = -1
t1_indent = TestObjective()
t1_indent.add_success(tval1_indent == 4 and (def_line <tval1b < call_line), "Great job!")
t1_indent.add_failure(tval1_indent != 4, "Make sure you indent the if statement inside the interval event!")
t1_indent.add_failure(not (def_line <tval1b < call_line), "Make sure if-statement is inside your interval event.")
t2 = TestObjective()
t2.add_success(tval2a == 'x' and tval2b == 'y' and tval2c == 5 and tval2d == 20 and tval2e == "yellow" and tval3 >= 5, "Great job!")
t2.add_failure(tval2a == "DNE", "Did you add Star inside the if-statement?")
t2.add_failure(tval2a != 'DNE' and tval3 < 5, "Oops! Did you delete some arguments?")
t2.add_failure(tval2_name != 'star', "Did you rename sprite to star?")
t2.add_failure(tval2a != 'x', "Did you change star's x-coordinate from 0 to x?")
t2.add_failure(tval2b != 'y', "Did you change star's y-coordinate from 0 to y?")
t2.add_failure(tval2c == 20, "Oops! The star should have 5 points, not 20!")
t2.add_failure(tval2d != 20, "Did you change star's radius from 100 to 20?")
t2.add_failure(tval2e == "blue", "Did you change star's color from blue to yellow?")
t2_indent = TestObjective()
t2_indent.add_success(tval2_indent == 8 and (tval1b <star_line < call_line), "Great job!")
t2_indent.add_failure(tval2_indent != 8, "Make sure you indent Star twice (8 spaces total)!")
t2_indent.add_failure(not (tval1b <star_line < call_line), "Make sure Star is inside your if-statement.")
tester = TestManager()
tester.add_test_list([t1_indent, t2, t2_indent])
tester.run_tests()
tester.display_first_feedback()
-
Run Code
-
Activity Submitted!
Submit Work
-
Next Activity
-
Stop Running Code
-
Show Chart
-
Show Console
-
Reset Code Editor
-
Codesters How To (opens in a new tab)